#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main() {
    // 提供一个足够大的缓冲区来存储错误信息
    char buf[256]={0};

    // 模拟一个打开文件的错误（假设文件不存在）
    FILE *file = fopen("non_existent_file.txt", "r");

    char* ret=0;
    if (file == NULL) {
        // 使用 strerror_r 获取错误描述
        if ((ret=strerror_r(errno, buf, sizeof(buf))) != NULL) {
            printf("Error: %s\n", buf);
        } else {
            printf("strerror_r failed to get the error message.\n");
        }
    } else {
        // 关闭文件（虽然这里永远不会执行到）
        fclose(file);
    }

    return 0;
}
